//    Copyright (C) Kherty.  All rights reserved.
using System;
using System.Collections.ObjectModel;
using OpenLS.Spreadsheet.Formats;

namespace OpenLS.Spreadsheet
{
    class CurrentDeletion
    {
        public CurrentDeletion(RangeAddress rangeAddress, CellMoveOrientationHint hint)
        {
            this.RangeAddress = rangeAddress;
            this.Hint = hint;
        }
        public RangeAddress RangeAddress;
        public CellMoveOrientationHint Hint;
    }

    public class TableEventArgs : EventArgs
    {
        public string TableAction { get; private set; }
        public Table CurrentTable { get; private set; }
        public Workbook CurrentWorkbook { get; private set; }
        // public ObservableCollection<Sheet> WorkbookSheets { get; private set; }
        internal TableEventArgs(Table table, Workbook workbook, string tableAction)
        {
            CurrentTable = table;
            CurrentWorkbook = workbook;
            TableAction = tableAction;
        }
    }

    public class TableDefinitionLoadedEventArgs : EventArgs
    {
        public JsonDataTableFormat tableDefinition { get; private set; }

        internal TableDefinitionLoadedEventArgs(JsonDataTableFormat TableDefinition)
        {
            tableDefinition = TableDefinition;
        }
    }

    public class CellEventArgs: EventArgs
    {
        public Cell Cell { get; private set; }

        internal CellEventArgs(Cell cell)
        {
            Cell = cell;
        }
    }
    class DimensionEventArgs: EventArgs
{
        public Dimension Dimension { get; private set; }

        public DimensionEventArgs(Dimension dimension )
        {
            Dimension = dimension;
        }
}
    class CellRegionEventArgs: EventArgs
    {
        private readonly CellRegion _region;

        public CellRegionEventArgs(CellRegion region)
        {
            _region = region;
        }

        public CellRegion Region
        {
            get { return _region; }
        }
    }
}